With the intensive use of digital communication, efficient techniques for authenticating messages that are exchanged over insecure channels of communication are a key requirement. Cryptography is a technique used for preserving the integrity of messages transmitted over public and insecure channels of communication. One of the most widely used cryptographic techniques for preserving the integrity and authenticity of messages is a Message Authentication Code (MAC). A MAC is a symmetric key primitive that is used for authenticating a message in an effective manner.
The earliest MAC algorithms for authenticating the message were typically based on block ciphers. In recent years, block ciphers have been replaced by cryptographic hash functions as they are faster and MACs based on iterated hash functions yield faster designs. However, the fastest MACs in the prior art belong to another class of MAC algorithms namely MACs based on universal hash-function families.
However, the universal hash families are not cryptographic functions. That is, using universal hash families may lead to exposure of the secret hashing key if sufficient independent message-image pairs are provided. Also, it is easy to construct a system of linear equations in order to solve for the secret key that is used for authenticating the message. Thus, in order to prevent the exposure of the hashing key, certain techniques in the prior art restricted the use of the same hashing key to a limited number of times, leading to an unconditionally secure MAC. Later, in order to avoid the impracticality of dealing with one-time keys, the hashed image was processed with a cryptographic function in order to secure the hashing key.
In the existing MAC primitives based on universal hashing families, every single bit of the message to be authenticated must be processed with a secret MAC key. For instance, in the case of MACs based on universal hash families, an entire message must be broken into blocks and every single block of the message is to be multiplied with a random secret key that is independent of other keys corresponding to other blocks.
Also, in many universal hashing approaches that were used for generating the MAC, managing long keys introduces bottlenecks during processing of the keys using cryptographic functions.
Therefore, in light of the above mentioned prior art, there is a need for a method and system for generating a more efficient and secure MAC for authenticating a message.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the invention.